/*
 * Thread.h
 *
 *  Created on: 22/05/2011
 *      Author: wadi
 */

#ifndef THREAD_H_
#define THREAD_H_

#include <pthread.h>

class Thread {
public:
    Thread();
    virtual ~Thread();
    void start();
    void join();
    virtual void run()=0;

protected:
    /**
     * Metodo estatico para llamar al metodo run de una instancia de Thread
     * @param objeto: instancia de Thread a invocarle el metodo run
     * @return
     */
      static void *  starter(void* objeto);

private:
    pthread_t thread;
    pthread_attr_t attr;
    bool wasStarted;
};

#endif /* THREAD_H_ */
